#ifndef PARTIE_H_
#define PARTIE_H_

#include <iostream>

using namespace std;

/*!
 *
 * \class Partie
 * \brief Regroupe des informations temporaires sur les parties.
 *
 */
class Partie
{
	private:
	string ip; /*!< Adresse IP du la partie */
	int portEcoute; /*!< Port d'ecoute du serveur de partie */
	int portLecture; /*!< Port de lecture du serveur de partie */
	int nbJoueur; /*!< Nombre de joueurs */
	int nbPacman; /*!< Nombre de pacman */
	int nbFantome; /*!< Nombre de fantome */
	string jeton; /*!< Jeton */
	bool alive; /*!< Pour savoir si la partie n'a pas planté */
	
	public:
	/*!
	 * \brief Constructeur.
	 * \param ip L'adresse IP de la partie.
	 * \param portEcoute Le port d'écoute TCP des nouveaux arrivants.
	 * \param portLecture Le port de lecture UDP des mouvements.
	 * \param nbJoueur Le nombre de joueur de la partie.
	 * \param nbPacman Le nombre de pacman de la partie.
	 * \param nbFantome Le nombre de fantome de la partie.
	 * \param alive Indique si la partie n'a pas planté.
	 */
	Partie(string ip, int portEcoute, int portLecture, int nbJoueur, int nbPacman,int nbFantome, bool alive);
	
	/*!
	 *
	 * \brief Destructeur.
	 *
	 */
	~Partie();
	
	
	/*!
	 *
	 * \brief Accesseur à l'adresse IP de la partie.
	 * \return L'adresse IP de la partie.
	 *
	 */
	string getIP();
	
	/*!
	 *
	 * \brief Accesseur au port d'ecoute de la partie.
	 * \return Le port d'écoute TCP des nouveaux arrivants de la partie.
	 *
	 */
	int getPortEcoute();

	/*!
	 *
	 * \brief Accesseur au port de lecture de la partie.
	 * \return Le port de lecture UDP des mouvements.
	 *
	 */
	int getPortLecture();

	/*!
	 *
	 * \brief Accesseur au nombre de joueur.
	 * \param Le nombre de joueur de la partie.
	 *
	 */
	int getNbJoueur();

	/*!
	 *
	 * \brief Setteur du nombre de joueur.
	 * \param nbJoueur Le nombre de joueur de la partie.
	 *
	 */
	void setNbJoueur(int nbJoueur);

	/*!
	 *
	 * \brief Accesseur au nombre de pacman.
	 * \return Le nombre de pacman de la partie.
	 *
	 */
	int getNbPacman();
	
	/*!
	 *
	 * \brief Setteur du nombre de pacman.
	 * \param nbPacman Le nombre pacman de la partie.
	 *
	 */
	void setNbPacman(int nbPacman);
	
	/*!
	 *
	 * \brief Accesseur au nombre de fantome.
	 * \return Le nombre de fantome de la partie.
	 *
	 */
	int getNbFantome();
	
	/*!
	 *
	 * \brief Setter du nombre de fantome.
	 * \param nbFantome Le nombre de fantome de la partie.
	 *
	 */
	void setNbFantome(int nbFantome);

	/*!
	 *
	 * \brief Accesseur au jeton.
	 * \return Le jeton de la partie.
	 *
	 */
	string getJeton();
	
	/*!
	 *
	 * \brief Setter du jeton.
	 * \param jeton Le jeton de la partie.
	 *
	 */
	void setJeton(string jeton);
	
	/*!
	 *
	 * \brief Accesseur au booleen alive.
	 * \return Un booleen indiquant si la partie n'a pas planté. 
	 *
	 */
	bool getAlive();
	
	/*!
	 *
	 * \brief Setter du au booleen alive.
	 * \param alive Le booleen indiquant si la partie n'a pas planté.
	 *
	 */
	void setAlive(bool alive);

};

#endif /*PARTIE_H_*/
